cssimage: Fix size computation for -gtk-icontheme()
authorBenjamin Otte <otte@redhat.com>
Wed, 23 Jul 2014 16:40:55 +0000 (18:40 +0200)
committerBenjamin Otte <otte@redhat.com>
Wed, 23 Jul 2014 16:51:26 +0000 (18:51 +0200)
For images without a concrete size but with an aspect ratio, we took the
wrong code path.

(I even copied the documentation that said "Otherwise" but didn't put an
else clause there, go me!)

gtk/gtkcssimage.c

index c5a336a0a4afaf0d3b3d2a430f9339cc5185899f..049d49e6897c57676870942a37e97745bc7af956 100644 (file)
@@ -320,30 +320,32 @@ _gtk_css_image_get_concrete_size (GtkCssImage *image,
               *concrete_height = default_width / image_aspect;
             }
         }
-
-      /* Otherwise, the width and height of the concrete object
-       * size is the same as the object's intrinsic width and
-       * intrinsic height, if they exist.
-       * If the concrete object size is still missing a width or
-       * height, and the object has an intrinsic aspect ratio,
-       * the missing dimension is calculated from the present
-       * dimension and the intrinsic aspect ratio.
-       * Otherwise, the missing dimension is taken from the default
-       * object size. 
-       */
-      if (image_width)
-        *concrete_width = image_width;
-      else if (image_aspect)
-        *concrete_width = image_height * image_aspect;
       else
-        *concrete_width = default_width;
+        {
+          /* Otherwise, the width and height of the concrete object
+           * size is the same as the object's intrinsic width and
+           * intrinsic height, if they exist.
+           * If the concrete object size is still missing a width or
+           * height, and the object has an intrinsic aspect ratio,
+           * the missing dimension is calculated from the present
+           * dimension and the intrinsic aspect ratio.
+           * Otherwise, the missing dimension is taken from the default
+           * object size. 
+           */
+          if (image_width)
+            *concrete_width = image_width;
+          else if (image_aspect)
+            *concrete_width = image_height * image_aspect;
+          else
+            *concrete_width = default_width;
 
-      if (image_height)
-        *concrete_height = image_height;
-      else if (image_aspect)
-        *concrete_height = image_width / image_aspect;
-      else
-        *concrete_height = default_height;
+          if (image_height)
+            *concrete_height = image_height;
+          else if (image_aspect)
+            *concrete_height = image_width / image_aspect;
+          else
+            *concrete_height = default_height;
+        }
 
       return;
     }